文档 / SDK 接入

Node.js SDK 接入

框架内置 OcpsClientshared/sdk.js),自动完成签名、Bearer、幂等、错误解析。生产网关:https://api.ocps.cc

初始化

const { OcpsClient } = require('ocps-sdk');

const client = new OcpsClient({
  baseUrl: 'https://api.ocps.cc',
  ak: process.env.OCPS_AK,
  sk: process.env.OCPS_SK,
  appid: process.env.OCPS_APPID,
});

常用方法

// GET
await client.get('/content/v1/contents', { status: 'published', page_size: 10 });

// POST(写操作自动带幂等)
await client.post('/content/v1/contents', {
  type_code: 'blog',
  title: '你好,OCPS',
  body_json: { blocks: [...] },
  status: 'draft',
});

// PATCH(乐观锁)
await client.patch('/content/v1/contents/' + id, { title: '新标题', version: 3 });

// DELETE
await client.delete('/content/v1/contents/' + id);

用户级令牌

// 登录拿 Bearer
const { access_token } = await client.post('/auth/v1/auth/token', {
  username: 'user1', password: '***', grant_type: 'password',
});

// 代表用户请求
const userClient = new OcpsClient({ baseUrl, ak, sk, appid, token: access_token });
const me = await userClient.get('/user/v1/users/me');

错误处理

try {
  await client.get('/content/v1/contents/not-exist');
} catch (e) {
  console.log(e.code);     // 如 CONTENT_NOT_FOUND
  console.log(e.message);
  console.log(e.status);   // HTTP 状态码
}

直接手写签名的场景

小程序 / App 等环境不方便引入完整 SDK 时,可只实现签名函数(见 API 签名与鉴权),其余用原生 fetch